
#include "dslash.h"

const unsigned short crc16table[] =
{
        0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241,
        0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440,
        0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40,
        0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841,
        0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40,
        0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41,
        0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641,
        0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040,
        0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240,
        0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441,
        0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41,
        0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840,
        0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41,
        0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40,
        0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640,
        0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041,
        0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240,
        0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441,
        0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41,
        0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840,
        0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41,
        0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40,
        0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640,
        0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041,
        0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241,
        0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440,
        0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40,
        0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841,
        0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40,
        0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41,
        0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641,
        0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040
};

struct Maker makers[] =
{
        {"01", "Nintendo"},
        {"02", "Rocket Games}, Ajinomoto"},
        {"03", "Imagineer-Zoom"},
        {"04", "Gray Matter?"},
        {"05", "Zamuse"},
        {"06", "Falcom"},
        {"07", "Enix?"},
        {"08", "Capcom"},
        {"09", "Hot B Co."},
        {"0A", "Jaleco"},
        {"0B", "Coconuts Japan"},
        {"0C", "Coconuts Japan/G.X.Media"},
        {"0D", "Micronet?"},
        {"0E", "Technos"},
        {"0F", "Mebio Software"},
        {"0G", "Shouei System"},
        {"0H", "Starfish"},
        {"0J", "Mitsui Fudosan/Dentsu"},
        {"0L", "Warashi Inc."},
        {"0N", "Nowpro"},
        {"0P", "Game Village"},
        {"10", "?????????????"},
        {"12", "Infocom"},
        {"13", "Electronic Arts Japan"},
        {"15", "Cobra Team"},
        {"16", "Human/Field"},
        {"17", "KOEI"},
        {"18", "Hudson Soft"},
        {"19", "S.C.P."},
        {"1A", "Yanoman"},
        {"1C", "Tecmo Products"},
        {"1D", "Japan Glary Business"},
        {"1E", "Forum/OpenSystem"},
        {"1F", "Virgin Games"},
        {"1G", "SMDE"},
        {"1J", "Daikokudenki"},
        {"1P", "Creatures Inc."},
        {"1Q", "TDK Deep Impresion"},
        {"20", "Destination Software}, KSS"},
        {"21", "Sunsoft/Tokai Engineering??"},
        {"22", "POW}, VR 1 Japan??"},
        {"23", "Micro World"},
        {"25", "San-X"},
        {"26", "Enix"},
        {"27", "Loriciel/Electro Brain"},
        {"28", "Kemco Japan"},
        {"29", "Seta"},
        {"2A", "Culture Brain"},
        {"2C", "Palsoft"},
        {"2D", "Visit Co.},Ltd."},
        {"2E", "Intec"},
        {"2F", "System Sacom"},
        {"2G", "Poppo"},
        {"2H", "Ubisoft Japan"},
        {"2J", "Media Works"},
        {"2K", "NEC InterChannel"},
        {"2L", "Tam"},
        {"2M", "Jordan"},
        {"2N", "Smilesoft ???}, Rocket ???"},
        {"2Q", "Mediakite"},
        {"30", "Viacom"},
        {"31", "Carrozzeria"},
        {"32", "Dynamic"},
        //"33"}, "NOT A COMPANY!"},
        {"34", "Magifact"},
        {"35", "Hect"},
        {"36", "Codemasters"},
        {"37", "Taito/GAGA Communications"},
        {"38", "Laguna"},
        {"39", "Telstar Fun & Games}, Event/Taito"},
        {"3B", "Arcade Zone Ltd"},
        {"3C", "Entertainment International/Empire Software?"},
        {"3D", "Loriciel"},
        {"3E", "Gremlin Graphics"},
        {"3F", "K.Amusement Leasing Co."},
        {"40", "Seika Corp."},
        {"41", "Ubi Soft Entertainment"},
        {"42", "Sunsoft US?"},
        {"44", "Life Fitness"},
        {"46", "System 3"},
        {"47", "Spectrum Holobyte"},
        {"49", "IREM"},
        {"4B", "Raya Systems"},
        {"4C", "Renovation Products"},
        {"4D", "Malibu Games"},
        {"4F", "Eidos (was U.S. Gold <=1995)"},
        {"4G", "Playmates Interactive?"},
        {"4J", "Fox Interactive"},
        {"4K", "Time Warner Interactive"},
        {"4Q", "Disney Interactive"},
        {"4S", "Black Pearl"},
        {"4U", "Advanced Productions"},
        {"4X", "GT Interactive"},
        {"4Y", "RARE?"},
        {"4Z", "Crave Entertainment"},
        {"50", "Absolute Entertainment"},
        {"51", "Acclaim"},
        {"52", "Activision"},
        {"53", "American Sammy"},
        {"54", "Take 2 Interactive (before it was GameTek)"},
        {"55", "Hi Tech"},
        {"56", "LJN LTD."},
        {"58", "Mattel"},
        {"5A", "Mindscape}, Red Orb Entertainment?"},
        {"5B", "Romstar"},
        {"5C", "Taxan"},
        {"5D", "Midway (before it was Tradewest)"},
        {"5F", "American Softworks"},
        {"5G", "Majesco Sales Inc"},
        {"5H", "3DO"},
        {"5K", "Hasbro"},
        {"5L", "NewKidCo"},
        {"5M", "Telegames"},
        {"5N", "Metro3D"},
        {"5P", "Vatical Entertainment"},
        {"5Q", "LEGO Media"},
        {"5S", "Xicat Interactive"},
        {"5T", "Cryo Interactive"},
        {"5W", "Red Storm Entertainment"},
        {"5X", "Microids"},
        {"5Z", "Conspiracy/Swing"},
        {"60", "Titus"},
        {"61", "Virgin Interactive"},
        {"62", "Maxis"},
        {"64", "LucasArts Entertainment"},
        {"67", "Ocean"},
        {"69", "Electronic Arts"},
        {"6B", "Laser Beam"},
        {"6E", "Elite Systems"},
        {"6F", "Electro Brain"},
        {"6G", "The Learning Company"},
        {"6H", "BBC"},
        {"6J", "Software 2000"},
        {"6L", "BAM! Entertainment"},
        {"6M", "Studio 3"},
        {"6Q", "Classified Games"},
        {"6S", "TDK Mediactive"},
        {"6U", "DreamCatcher"},
        {"6V", "JoWood Produtions"},
        {"6W", "SEGA"},
        {"6X", "Wannado Edition"},
        {"6Y", "LSP"},
        {"6Z", "ITE Media"},
        {"70", "Infogrames"},
        {"71", "Interplay"},
        {"72", "JVC"},
        {"73", "Parker Brothers"},
        {"75", "Sales Curve"},
        {"78", "THQ"},
        {"79", "Accolade"},
        {"7A", "Triffix Entertainment"},
        {"7C", "Microprose Software"},
        {"7D", "Universal Interactive}, Sierra}, Simon & Schuster?"},
        {"7F", "Kemco"},
        {"7G", "Rage Software"},
        {"7H", "Encore"},
        {"7J", "Zoo"},
        {"7K", "BVM"},
        {"7L", "Simon & Schuster Interactive"},
        {"7M", "Asmik Ace Entertainment Inc./AIA"},
        {"7N", "Empire Interactive?"},
        {"7Q", "Jester Interactive"},
        {"7T", "Scholastic"},
        {"7U", "Ignition Entertainment"},
        {"7W", "Stadlbauer"},
        {"80", "Misawa"},
        {"81", "Teichiku"},
        {"82", "Namco Ltd."},
        {"83", "LOZC"},
        {"84", "KOEI"},
        {"86", "Tokuma Shoten Intermedia"},
        {"87", "Tsukuda Original"},
        {"88", "DATAM-Polystar"},
        {"8B", "Bulletproof Software"},
        {"8C", "Vic Tokai Inc."},
        {"8E", "Character Soft"},
        {"8F", "I'Max"},
        {"8G", "Saurus"},
        {"8J", "General Entertainment"},
        {"8N", "Success"},
        {"8P", "SEGA Japan"},
        {"90", "Takara Amusement"},
        {"91", "Chun Soft"},
        {"92", "Video System}, McO'River???"},
        {"93", "BEC"},
        {"95", "Varie"},
        {"96", "Yonezawa/S'pal"},
        {"97", "Kaneko"},
        {"99", "Victor Interactive Software}, Pack in Video"},
        {"9A", "Nichibutsu/Nihon Bussan"},
        {"9B", "Tecmo"},
        {"9C", "Imagineer"},
        {"9F", "Nova"},
        {"9G", "Den'Z"},
        {"9H", "Bottom Up"},
        {"9J", "TGL"},
        {"9L", "Hasbro Japan?"},
        {"9N", "Marvelous Entertainment"},
        {"9P", "Keynet Inc."},
        {"9Q", "Hands-On Entertainment"},
        {"A0", "Telenet"},
        {"A1", "Hori"},
        {"A4", "Konami"},
        {"A5", "K.Amusement Leasing Co."},
        {"A6", "Kawada"},
        {"A7", "Takara"},
        {"A9", "Technos Japan Corp."},
        {"AA", "JVC}, Victor Musical Indutries"},     
        {"AC", "Toei Animation"},
        {"AD", "Toho"},
        {"AF", "Namco"},
        {"AG", "Media Rings Corporation"},
        {"AH", "J-Wing"},
        {"AJ", "Pioneer LDC"},
        {"AK", "KID"},
        {"AL", "Mediafactory"},
        {"AP", "Infogrames Hudson"},
        {"AQ", "Kiratto. Ludic Inc"},
        {"B0", "Acclaim Japan"},
        {"B1", "ASCII (was Nexoft?)"},
        {"B2", "Bandai"},
        {"B4", "Enix"},
        {"B6", "HAL Laboratory"},
        {"B7", "SNK"},
        {"B9", "Pony Canyon"},
        {"BA", "Culture Brain"},
        {"BB", "Sunsoft"},
        {"BC", "Toshiba EMI"},
        {"BD", "Sony Imagesoft"},
        {"BF", "Sammy"},
        {"BG", "Magical"},
        {"BH", "Visco"},
        {"BJ", "Compile"},
        {"BL", "MTO Inc."},
        {"BN", "Sunrise Interactive"},
        {"BP", "Global A Entertainment"},
        {"BQ", "Fuuki"},
        {"C0", "Taito"},
        {"C2", "Kemco"},
        {"C3", "Square"},
        {"C4", "Tokuma Shoten"},
        {"C5", "Data East"},
        {"C6", "Tonkin House    (was Tokyo Shoseki)"},
        {"C8", "Koei"},
        {"CA", "Konami/Ultra/Palcom"},
        {"CB", "NTVIC/VAP"},
        {"CC", "Use Co.},Ltd."},
        {"CD", "Meldac"},
        {"CE", "Pony Canyon"},
        {"CF", "Angel}, Sotsu Agency/Sunrise"},
        {"CJ", "Boss"},
        {"CG", "Yumedia/Aroma Co.}, Ltd"},
        {"CK", "Axela/Crea-Tech?"},
        {"CL", "Sekaibunka-Sha}, Sumire kobo?}, Marigul Management Inc.?"},
        {"CM", "Konami Computer Entertainment Osaka"},
        {"CP", "Enterbrain"},
        {"D0", "Taito/Disco"},
        {"D1", "Sofel"},
        {"D2", "Quest}, Bothtec"},
        {"D3", "Sigma}, ?????"},
        {"D4", "Ask Kodansha"},
        {"D6", "Naxat"},
        {"D7", "Copya System"},
        {"D8", "Capcom Co.}, Ltd."},
        {"D9", "Banpresto"},
        {"DA", "TOMY"},
        {"DB", "LJN Japan"},
        {"DD", "NCS"},
        {"DE", "Human Entertainment"},
        {"DF", "Altron"},
        {"DG", "Jaleco???"},
        {"DH", "Gaps Inc."},
        {"DL", "????"},
        {"DN", "Elf"},
        {"E0", "Jaleco"},
        {"E1", "????"},
        {"E2", "Yutaka"},
        {"E3", "Varie"},
        {"E4", "T&ESoft"},
        {"E5", "Epoch"},
        {"E7", "Athena"},
        {"E8", "Asmik"},
        {"E9", "Natsume"},
        {"EA", "King Records"},
        {"EB", "Atlus"},
        {"EC", "Epic/Sony Records"},
        {"EE", "IGS"},
        {"EG", "Chatnoir"},
        {"EH", "Right Stuff"},
        {"EJ", "????"},
        {"EL", "Spike"},
        {"EM", "Konami Computer Entertainment Tokyo"},
        {"EN", "Alphadream Corporation"},
        {"F0", "A Wave"},
        {"F1", "Motown Software"},
        {"F2", "Left Field Entertainment"},
        {"F3", "Extreme Ent. Grp."},
        {"F4", "TecMagik"},
        {"F9", "Cybersoft"},
        {"FB", "Psygnosis"},
        {"FE", "Davidson/Western Tech."},
        {"G1", "PCCW Japan"},
        {"G4", "KiKi Co Ltd"},
        {"G5", "Open Sesame Inc???"},
        {"G6", "Sims"},
        {"G7", "Broccoli"},
        {"G8", "Avex"},
        {"G9", "D3 Publisher"},
        {"GB", "Konami Computer Entertainment Japan"},
        {"GD", "Square-Enix"},
        {"IH", "Yojigen"},
        {0   , 0}
};
